package com.kpmg.datalake.common.service.impl;

import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.kpmg.datalake.common.dao.IdyTabMpngMapper;
import com.kpmg.datalake.common.enums.ResultCodeEnum;
import com.kpmg.datalake.common.enums.UseOrDelEnum;
import com.kpmg.datalake.common.exception.BusinessException;
import com.kpmg.datalake.common.model.IdyTabMpng;
import com.kpmg.datalake.common.service.IIdyTabMpngService;
import org.springframework.stereotype.Service;

/**
 * <p>
 * 行业表配置映射 服务实现类
 * </p>
 *
 * @author azhao6
 * @since 2018-08-23
 */
@Service
public class IdyTabMpngServiceImpl extends ServiceImpl<IdyTabMpngMapper, IdyTabMpng> implements
    IIdyTabMpngService {

  /**
   * 通过  行业 id 和来源表名查询数据库目标表名字
   *
   * @param idyId 行业
   * @param sourceTable 来源表
   * @return String 目标表
   */
  @Override
  public String getTargetTabBySourceTabAndIdyId(String idyId, String sourceTable) {
    IdyTabMpng idyTabMpng = new IdyTabMpng();
    idyTabMpng.setIdyId(idyId);
    idyTabMpng.setSourTabNm(sourceTable);
    idyTabMpng.setDelInd(UseOrDelEnum.USE.getIntCode());
    idyTabMpng = super.selectOne(new EntityWrapper<>(idyTabMpng));
    if (idyTabMpng == null) {
      throw new BusinessException(ResultCodeEnum.CODE4000,
          String.format("通过行业id【%s】来源表名 【%s】未找到对应的表映射关系", idyId, sourceTable));
    }
    return idyTabMpng.getTargTabNm();
  }
}
